Camera.get()

Доступность

Flash Player 6.

Синтаксис

Camera.get([index:Number]) : Camera

Замечание: Правильный синтаксис Camera.get().Чтобы присвоить объект Camera переменной, используйте следующий синтаксис: active_cam = Camera.get().

Параметры

index Необязательный параметр; целое число, начиная с 0, которое определяет, какая камера будет вызвана, как назначено в массиве, возвращаемом свойством Camera.names .Чтобы получить камеру по умолчанию (как рекомендуется делать в большинстве приложений), этот парамет можно опустить.

Возвращает

Описание

Метод; возвращает ссылку на объект Camera для захвата видео. Для того, чтоды начать захват видео, вы должны присоединить объект Camera к объекту Video (см. Video.attachVideo()).

В отличии от объектов, которые вы создаете, используя конструктор new, многократные вызовы Camera.get() ссылаются на ту же камеру. Таким образом, если ваш скрипт содержит строки first_cam = Camera.get() и second_cam = Camera.get(), first_cam и second_cam будут ссылаться на одну камеру, камеру по умолчанию.

Обычно, вы не можете передать значение для index; просто используйте Camera.get() чтобы вернуть ссылку на камеру по умолчанию. С помощью панели настроек камеры (Camera settings panel ) (см. ниже), пользователь может определить, какая камера будет использоваться флэшом по умолчанию. Если вы передаете значение для index, вы можете попытаться получить ссылку на камеру, отличную от указанной пользователем. Вы можете использовать index в редких случаях, например, если ваше приложение захватывает видео с двух камер одновременно.

Когда SWF файл пытается получить доступ к камере при помощи Camera.get() , флэш проигрыватель открывает диалоговое окно с предупреждением. Пользователь может разрешить или запретить доступ к камере. (Помните, что размер сцены должен быть не меньше 215 x 138 пикселей; это минимальный размер, который требуется флэш плееру для диалогового окна) .

После того, как пользователь подтвердил свой выбор в этом диалоговом окне, обработчик события Camera.onStatus возвращает данные о выборе пользователя. Для того, чтобы определить, разрешил или запретил пользователь доступ к камере без использования этого обработчика событий, используйте свойство Camera.muted .

Пользователь также может включить постоянные настройки безопасности для отдельного домена, вызвав нажатием правой кнопки мыши (Windows) или Control-clicking (Macintosh) панель настройки безопасности флэш плеера и выбрав Remember.

Вы не можете исользовать ActionScript чтобы установить значения "Позволить" или "Запретить" для пользователя, но вы можете сразу открыть панель настройки безопасности (Privacy panel), использовав System.showSettings(0). Если пользователь выберет Remember, флэш проигрыватель в дальнейшем не будет открывать окно с предупреждением о возможном нарушении безопасности для SWF файлов из этого домена.

Если Camera.get возвращает null, камера либо используется другим приложением, либо в системе пользователя нет установленных камер. Для того, чтобы определить, есть ли в системе установленные камеры, используйте Camera.names.length. Чтобы показать панель настроек камеры флэш плеера (Flash Player Camera Settings panel) которая позволит пользователю выбрать камеру, на которую будет ссылаться Camera.get(), используйте System.showSettings(3).

Проверка системы пользователя на наличие камеры занимает некоторое время. Если флэш находит хотя бы одну камеру, система не будет проверяться на наличие камеры до следующего запуска приложения. Однако, если флэш не нашел ни одной камеры, он будет сканировать систему каждый раз, когда вызывается Camera.get. Это поможет в случае, если пользователь забыл подключить камеру. Если ваш SWF файл снабжен кнопкой "Попробовать снова", которая вызывает Camera.get, пользователю не придется перезагружать SWF файл, чтобы найти камеру.

Пример

В следующем примере показано, как вы можете выбрать активную камеру, используя экзэпляр компонента ComboBox. Текущая активная камера показывается в экзэмпляре компонента Label. Создайте новый экзэмпляр видео, выбрав New Video из меню настроек библиотеки (Library options menu). Добавьте экзэмпляр в сцену и дайте ему имя my_video. Затем добавьте в сцену экзэмпляр компонента Label с именем camera_lbl и экзэмпляр компонента ComboBox с именем cameras_cb. Затем скопируйте в первый кадр таймлайна следующий код:

var my_cam:Camera = Camera.get();
var my_video:Video;
my_video.attachVideo(my_cam);
var camera_lbl:mx.controls.Label;
var cameras_cb:mx.controls.ComboBox;
camera_lbl.text = my_cam.name;
cameras_cb.dataProvider = Camera.names;
function changeCamera():Void {
  my_cam = Camera.get(cameras_cb.selectedIndex);
  my_video.attachVideo(my_cam);
  camera_lbl.text = my_cam.name;
}
cameras_cb.addEventListener("change", changeCamera);
camera_lbl.setStyle("fontSize", 9);
cameras_cb.setStyle("fontSize", 9);

См. также

Camera.index, Camera.muted, Camera.names, Camera.onStatus, Camera.setMode(), System.showSettings(), Video.attachVideo()